/imports ...
/imports/codemirror ...
active-line.js
closebrackets.js
closetag.js
codemirror.css
codemirror.js
comment.js
continuecomment.js
css.js
dialog.css
dialog.js
html-hint.js
htmlembedded.js
htmlmixed.js
javascript-hint.js
javascript.js
match-highlighter.js
matchbrackets.js
search.js
searchcursor.js
show-hint.css
show-hint.js
trailingspace.js
xml-hint.js
xml.js
/imports/knockout
knockout-3.0.0.js
/imports/typescript
lib.d.ts
typescriptServices.js
/imports/zip.js
deflate.js
inflate.js
zip.js
/layout
file.html
folder.html
page.html
teapo.css
/typings
codemirror.d.ts
knockout.d.ts
typescriptServices.d.ts
websql.d.ts
zip.js.d.ts
TypeScriptService.ts
editor-std.ts
editor-x-css.ts
editor-x-html.ts
editor-x-js.ts
editor-x-ts.ts
editor.ts
files.ts
ko.ts
persistence.ts
shell.ts
teapo.html
teapo.js
teapo.ts
    var noIndent = Kludges.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent);
281
    },
282
 
283
    token: function(stream, state) {
284
      if (!state.tagName && stream.sol()) {
285
        state.startOfLine = true;
286
        state.indented = stream.indentation();
287
      }
288
      if (stream.eatSpace()) return null;
289
      tagName = type = null;
290
      var style = state.tokenize(stream, state);
291
      if ((style || type) && style != "comment") {
292
        setStyle = null;
293
        state.state = state.state(type || style, stream, state);
294
        if (setStyle)
295
          style = setStyle == "error" ? style + " error" : setStyle;
296
      }
297
      state.startOfLine = false;
298
      return style;
299
    },
300
 
301
    indent: function(state, textAfter, fullLine) {
302
      var context = state.context;
303
      // Indent multi-line strings (e.g. css).
304
      if (state.tokenize.isInAttribute) {
305
        return state.stringStartCol + 1;
306
      }
307
      if ((state.tokenize != inTag && state.tokenize != inText) ||
308
          context && context.noIndent)
309
        return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
310
      // Indent the starts of attribute names.
311
      if (state.tagName) {
312
        if (multilineTagIndentPastTag)
313
          return state.tagStart + state.tagName.length + 2;
314
        else
315
          return state.tagStart + indentUnit * multilineTagIndentFactor;
316
      }
317
      if (alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
318
      if (context && /^<\//.test(textAfter))
319
        context = context.prev;
320
      while (context && !context.startOfLine)
321
        context = context.prev;
322
      if (context) return context.indent + indentUnit;
323
      else return 0;
324
    },
325
 
326
    electricChars: "/",
327
    blockCommentStart: "<!--",
328
    blockCommentEnd: "-->",
329
 
330
    configuration: parserConfig.htmlMode ? "html" : "xml",
331
    helperType: parserConfig.htmlMode ? "html" : "xml"
332
  };
333
});
334
 
335
CodeMirror.defineMIME("text/xml", "xml");
336
CodeMirror.defineMIME("application/xml", "xml");
337
if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
338
  CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true});
339